Главная страница » Блог » Изучение PHP

Массовое удаление категорий по их ID в WooCommerce через PHP

Готовый скрипт

Ниже представлен листинг кода, для массового удаления категорий по ID, записанным в файл:

    global $wpdb;

    $wp_terms_table = $wpdb->prefix . 'terms'; // wp_terms
    $wp_term_taxonomy_table = $wpdb->prefix . 'term_taxonomy'; // wp_term_taxonomy

    $file = dirname(__FILE__) . '/ids.txt'; // файл со значениями атрибута на русском (каждое значение с новой строки)

    $handle = fopen($file, 'r');
    if ($handle)
    {
        while (($id = fgets($handle)) !== false) {
            $wpdb->delete( $wp_terms_table, [ 'term_id' => $id ] );
            $wpdb->delete( $wp_term_taxonomy_table, [ 'term_id' => $id ] );
        }
        fclose($handle);
    }

Подготовительные работы

Для начала нужно подготовить файл с перечислением ID категорий (каждый ID с новой строки) и заложить его в корень активной темы:

Массовое удаление категорий по их ID в WooCommerce через PHP
Скриншот файла со значениями заданными с каждой новой

Далее приведенный выше код скрипта можно поместить в functions.php или в любой запускаемый php-файл.

Так же не забыть указать имя вашего файла со значениями в переменной $file:

$file = dirname(__FILE__) . '/ids.txt'; // файл со значениями атрибута на русском (каждое значение с новой строки)

Теперь можно запускать скрипт и смотреть результат.

Внимание, код нужно прогонять один раз, иначе создадутся дубли с другими term_id: